package com.ruoyi.business.service;

import java.util.List;
import com.ruoyi.business.domain.BusinessReminder;

/**
 * 提醒管理 服务层
 * 
 * @author ruoyi
 */
public interface IBusinessReminderService
{
    /**
     * 查询提醒信息
     * 
     * @param reminderId 提醒ID
     * @return 提醒信息
     */
    public BusinessReminder selectBusinessReminderById(Long reminderId);

    /**
     * 查询提醒列表
     * 
     * @param businessReminder 提醒信息
     * @return 提醒集合
     */
    public List<BusinessReminder> selectBusinessReminderList(BusinessReminder businessReminder);

    /**
     * 新增提醒
     * 
     * @param businessReminder 提醒信息
     * @return 结果
     */
    public int insertBusinessReminder(BusinessReminder businessReminder);

    /**
     * 修改提醒
     * 
     * @param businessReminder 提醒信息
     * @return 结果
     */
    public int updateBusinessReminder(BusinessReminder businessReminder);

    /**
     * 删除提醒信息
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteBusinessReminderByIds(String ids);

    /**
     * 删除提醒信息
     * 
     * @param reminderId 提醒ID
     * @return 结果
     */
    public int deleteBusinessReminderById(Long reminderId);
    
    /**
     * 取消提醒
     * 
     * @param reminderId 提醒ID
     * @return 结果
     */
    public int cancelReminder(Long reminderId);
    
    /**
     * 手动触发发送提醒任务
     * 
     * @param reminderId 提醒ID
     * @return 结果
     */
    public int triggerSendReminder(Long reminderId);
    
    /**
     * 发送提醒消息
     * 
     * @return 结果
     */
    public int sendReminders();
    
    /**
     * 扫描即将到期业务并创建提醒任务
     * 
     * @return 创建的提醒任务数
     */
    public int scanExpiringBusiness();
    
    /**
     * 导入提醒数据
     * 
     * @param reminderList 提醒数据列表
     * @param updateSupport 是否更新支持，如果已存在，则进行更新数据
     * @param operName 操作用户
     * @return 结果
     */
    public String importReminder(List<BusinessReminder> reminderList, boolean updateSupport, String operName);

    /**
     * 手动提交提醒
     * @param reminderId 提醒ID
     * @return 提交结果
     */
    String sendRemindersWithoutCondition(String reminderId);
}